#ifndef GAME_H
#define GAME_H

#include "Singleton.h"

//Forward Declaring:
//only used when we need to have a pointer to a type in a different class
class GameState;

class Game : public Uncopyable
{
private:
	Game() : m_state(0) { }
	friend class Singleton<Game>;

public:
	void Run();
	void Draw();
	void Update();

	void SetGameState(GameState* gs);

private:
	GameState* m_state;
};

typedef Singleton<Game> TheGame;

#endif